// 思路： 相邻两个元素进行比较，如果前一个元素大于后一个元素，则交换两个元素的位置
// 时间复杂度：O(n^2)
// 空间复杂度：O(1)
// 稳定性：稳定
// 适用场景：数据量较小
// 不适用于数据量较大的情况
function bubbleSort(arr) {
 for(let i = 0; i < arr.length - 1; i++) {
    for(let j = 0; j < arr.length - 1 - i; j++) {
        if(arr[j] > arr[j + 1]) {
            [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
        }
    }
 }
 return arr;
}

const arr = [5, 3, 8, 4, 2];
console.log(bubbleSort(arr));